<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      const nestedArray = [1, [2, [3, 4], 5], 6]
      // // 1. 递归算法
      // function flattenedArray(array) {
      //   let flattened = []
      //   array.forEach((item, index) => {
      //     if (Array.isArray(item)) {
      //       flattened = flattened.concat(flattenedArray(item))
      //     } else {
      //       flattened.push(item)
      //     }
      //   })
      //   return flattened
      // }

      // 2. reduce + 递归
      function reduceArray(array) {
        return array.reduce((a, b) => {
          console.log(b)
          return Array.isArray(b) ? a.concat(reduceArray(b)) : a.concat([b])
        }, [])
      }

      // // 3.利用展开运算符...
      // function zhankai(arr) {
      //   while (arr.some((item) => Array.isArray(item))) {
      //     arr = [].concat(...arr)
      //   }
      //   return arr
      // }

      // // 4.使用方法flat
      // const arr = [1, [1, [2, [3, 4], 5], 6]]
      // console.log(arr.flat(4))

      // // 5.使用toString和split
      // console.log(nestedArray.toString().split(','))
    </script>
  </body>
</html>
